// $(function() {
////////////////////////////////////////// 算数运算符
// 1.+
function addNum() {
    var a = 5 + 3;
    var b = '5' + 3;
    var c = '5' + '3';
    console.log('5 + 3：', a);
    console.log('"5" + 3:', b);
    console.log('"5" + "3":', c);
}
//2.-
function deleteNum() {
    var a = 5 - 3;
    var b = '5' - 3;
    var c = '5' - '3';
    console.log('5 - 3：', a);
    console.log('"5" - 3:', b);
    console.log('"5" - "3":', c);
}
//3.*
function ride() {
    var a = 5 * 3;
    var b = '5' * 3;
    var c = '5' * '3';
    console.log('5 * 3：', a);
    console.log('"5" * 3:', b);
    console.log('"5" * "3":', c);
}
//4./
function divide() {
    var a = 5 / 3;
    var b = '5' / 3;
    var c = '5' / '3';
    console.log('5 / 3：', a);
    console.log('"5" / 3:', b);
    console.log('"5" / "3":', c);
}
//5.%取余(只保留整数)
// 6.累加
// function addAdd() {
//     var m = 0,
//         n = 0;
//     for (var a = 0; a < 5; a++) {
//         m += a;
//         console.log('a++: ', m);
//     }
//     for (var b = 0; b < 5; ++b) {
//         n += b;
//         console.log('++b: ', n);
//     }
// console.log('1++：', 1++);
// console.log('++1:', ++1);
// }
// 7.递减
// function deleteDelete() {
//     var a = 1,
//         b = 1;
//     a--;
//     --b;
//     console.log('--：a:' + a, 'b:' + b);
// }

//////////////////////////////////////////关系运算符
//> < >= <= == != === !==

// ==：比较数值是否相等；引用数据类型则比较是否是同一个引用
// ===：先比较数据类型，在比较数值
function guanxi() {
    console.log('3 > 2: ', (3 > 2));
    console.log('"3" > 2: ', ("3" > 2));
    console.log('3 < 4: ', (3 < 4));
    console.log('3 < "4": ', (3 < "4"));

    var a = 5;
    console.log('>=: ', a);
    console.log('<=: ', a);
    console.log('(2 == 3): ', (2 == 3));
    console.log('(2 === 3): ', (2 === 3));
    console.log('(2 != 3): ', (2 != 3));
    console.log('("2" !== 3): ', ("2" !== 3));

    console.log('==：比较数值是否相等；引用数据类型则比较是否是同一个引用');
    console.log('===：先比较数据类型，在比较数值');
}

//////////////////////////////////////////赋值运算符
// = += -= *= /= %= <<= >>= &= ^= |=
//1.&=：按位与且赋值（相同为1，不同为0）
function weiyu() {
    var a = 1;
    a &= 2;
    console.log('（其中a等于1）a &= 2: ', a); //0
}
//2.|=：按位或且赋值（有一个1为1）
function weihuo() {
    var a = 1;
    a |= 2;
    console.log('（其中a等于1）a |= 2: ', a); //3
}

//3.^=：按位异或且赋值(相同为0，不同为1)
function yihuo() {
    var a = 3;
    a ^= 2;
    console.log('（其中a等于3）a ^= 2: ', a); //1
}

//////////////////////////////////////////逻辑运算符
// && || !
function luoji() {
    console.log('2&&3: ', (2 && 3));
    console.log('2||3: ', 2 || 3);
    console.log('!2: ', !2);

}

//////////////////////////////////////////位运算符
//~：取反
function reverse() {
    console.log('~0: ', ~0); // -1
    console.log('~5: ', ~5); // -6
    console.log('按位取反：正数补码是本身，负数补码取反加一');
}
//&：位与（相同的为1，不同的为0）
function weiyu2() {
    console.log('位与（相同的为1，不同的为0）');
    console.log('2&3: ', (2 & 3)); //2
}

//|：位或(一位有1即为1)
function weihuo2() {
    console.log('位或(一位有1即为1)');
    console.log('1|2: ', (1 | 2)); //3
}

//^：异或（不同为1，相同为0）
function yihuo2() {
    var a = 3;
    a ^= 2;
    console.log('异或（不同为1，相同为0）');
    console.log('（其中a为3）a^=2: ', a); //1
}

//<<有符号左移运算
//>>有符号右移运算
function move() {
    var a = 1 << 2;
    var b = 2 >> 1;
    console.log('1<<2: ', a); //4
    console.log('2>>1: ', b); //1
    console.log('-1>>2: ', -1 >> 2); //-1
}

//>>>无符号右移运算(高位不补1)
function move2() {
    var a = -1;
    console.log('-1>>>2: ', -1 >>> 2); //1073741823
}

//////////////////////////////////////////三元运算符
// ? :
function sanyuan() {
    console.log('2==3?true:false: ', 2 == 3 ? true : false);
}

// })
console.group('算术运算符');
addNum();
deleteNum();
ride();
divide();
// addAdd();
// deleteDelete();
console.groupEnd();
console.group('关系运算符');
guanxi();
console.groupEnd();
console.group('赋值运算符');
weiyu();
weihuo();
yihuo();
console.groupEnd();
console.group('逻辑运算符');
luoji();
console.groupEnd();
console.group('位运算符');
reverse();
weiyu2();
weihuo2();
yihuo2();
move();
console.groupEnd();
console.group('三元运算符');
sanyuan();
console.groupEnd();